Skip to content

Conversation

cjgillot
Copy link
Contributor

@cjgillot cjgillot commented Feb 5, 2023

The pass was broken by #107267.

This PR extends it to replace:

x = Struct { 0: a, 1: b }
y = move? x

by assignment between locals

x_0 = a
x_1 = b
y_0 = move? x_0
y_1 = move? x_1

The improved pass runs to fixpoint, so we can flatten nested field accesses.

@rustbot
Copy link
Collaborator

rustbot commented Feb 5, 2023

r? @eholk

(rustbot has picked a reviewer for you, use r? to override)

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Feb 5, 2023
@rustbot
Copy link
Collaborator

rustbot commented Feb 5, 2023

Some changes occurred to MIR optimizations

cc @rust-lang/wg-mir-opt

@cjgillot cjgillot added the A-mir-opt Area: MIR optimizations label Feb 5, 2023
) {
if lvalue.as_local().is_some() {
match rvalue {
// Aggregate assignments are expanded in run_pass.
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

pre-existing, but what does this comment mean?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
// Aggregate assignments are expanded in run_pass.
// `replace_flattened_locals` will expand those statements into fields,
// so we do not mark the lhs as non-splittable.

@oli-obk
Copy link
Contributor

oli-obk commented Feb 6, 2023

I feel more motivated to try to land some of my unpublished branches for MirPatch improvements, but the PR looks good

@bors r+

@bors
Copy link
Collaborator

bors commented Feb 6, 2023

📌 Commit 51ef82d has been approved by oli-obk

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Feb 6, 2023
bors added a commit to rust-lang-ci/rust that referenced this pull request Feb 6, 2023
Rollup of 5 pull requests

Successful merges:

 - rust-lang#107553 (Suggest std::ptr::null if literal 0 is given to a raw pointer function argument)
 - rust-lang#107580 (Recover from lifetimes with default lifetimes in generic args)
 - rust-lang#107669 (rustdoc: combine duplicate rules in ayu CSS)
 - rust-lang#107685 (Suggest adding a return type for async functions)
 - rust-lang#107687 (Adapt SROA MIR opt for aggregated MIR)

Failed merges:

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit e385ca2 into rust-lang:master Feb 6, 2023
@rustbot rustbot added this to the 1.69.0 milestone Feb 6, 2023
@cjgillot cjgillot deleted the sroa-2 branch February 6, 2023 21:22
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-mir-opt Area: MIR optimizations S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants